% SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
\chapter{Introduction}\label{ch:introduction} %%##$introduction-chapter-title>>
%%!!intro<<
App Manager is an advanced package manager for Android. It offers numerous features and thus, requires a user
manual to assist its users. This document acts as a user manual for App Manager in the sense that it aims to describe
every feature that App Manager has to offer. This document also serves as the ``official'' guidelines for
App Manager and represents the expected behavior of App Manager. Translations can misinterpret this document (which is
in English). Therefore, a capable user should read the English version of the document to get the most out
of it. There may as well be other unofficial or third-party resources, such as blog articles, videos, forums, and chat
groups. While these resources may be useful to many people, they may not be up-to-date with the latest
version of App Manager. In case of any deviations detected in App Manager from this document, they should be reported in the
\href{https://github.com/MuntashirAkon/AppManager/issues}{App Manager issue tracker}.
%%!!>>


\section{Terminologies}\label{sec:terminologies} %%##$terminologies-title>>
%%!!terminologies<<
\begin{itemize}
    \item \textbf{AM} --- Short name for App Manager.
    \item \textbf{Block/Unblock} --- Used for component blocking or unblocking. How components are blocked depends on
    the user preferences.
    \item \textbf{IFW} --- Short form of Intent Firewall.
    \item \textbf{Ops} --- Short name for operations, e.g.\ app ops, batch ops, 1-click ops
    \item \textbf{SAF} --- Short for Storage Access Framework, an abstraction used by Android to allow apps to use or
    serve files without worrying about the underlying file system.
    \item \textbf{SSAID} --- Short form of \texttt{Settings.Secure.ANDROID\_ID}. It is a device identifier assigned to
    each app (Android Oreo onwards). It is generated from the combination of the signing certificate of the app
    and the SSAID set for the package \texttt{android}. As a result, it is guaranteed to be the same for an app unless
    the user chooses to format the device. It is widely used for tracking.
    \item \textbf{Tracker} --- Denotes tracker components throughout the document and in App Manager except in the
    \hyperref[sec:scanner-page]{scanner page}. Trackers include libraries such as crash reporters, analytics,
    profiling, identification, ad, location, etc. Thus, they are not equal in functions. There is no distinction or bias
    among the open-source and closed-source libraries that promote tracking.
\end{itemize}
%%!!>>


\section{Supported Versions}\label{sec:supported-versions} %%##$supported-versions-title>>
%%!!supported-versions<<
At present, the supported version is v4.0.1.
Previous versions of App Manager may contain security vulnerabilities and should not be used.
%%!!>>


\section{Official Sources}\label{sec:official-sources} %%##$official-sources-title>>

\subsection{Binary Distribution Sources}\label{subsec:binary-distribution-sources} %%##$bin-sources-title>>
%%!!bin-sources<<
App Manager is distributed using the following sources. Unofficial sources may distribute modified versions of App
Manager, and you alone shall be responsible for the consequences of using such a distribution.
\begin{enumerate}
    \item Official F-Droid repository.\footnote{For distributing normal releases only}\\
    \textit{Link:} \url{https://f-droid.org/packages/io.github.muntashirakon.AppManager}
    \item GitHub repository.\\
    \textit{Normal releases:} \url{https://github.com/MuntashirAkon/AppManager/releases}\\
    \textit{Debug releases:} \url{https://github.com/MuntashirAkon/AMInsecureDebugBuilds}
    \item Telegram.\\
    \textit{Normal releases:} \url{https://t.me/AppManagerChannel}\\
    \textit{Debug releases:} \url{https://t.me/AppManagerDebug}
\end{enumerate}
%%!!>>

\subsection{Links to the Source Code}\label{subsec:links-to-source-code} %%##$source-code-links-title>>
%%!!source-code-links<<
All but GitHub are mirrors. The tags should always be up-to-date, but the master branch may not.
If you want to clone the master branch, use the GitHub link instead of the others.
%%!!>>
\begin{enumerate}
    \item GitHub: \url{https://github.com/MuntashirAkon/AppManager}
    \item Codeberg: \url{https://codeberg.org/muntashir/AppManager}
    \item GitLab: \url{https://gitlab.com/muntashir/AppManager}
    \item Riseup: \url{https://0xacab.org/muntashir/AppManager}
    \item sourcehut: \url{https://git.sr.ht/~muntashir/AppManager}
\end{enumerate}

\subsection{Translations}\label{subsec:translations} %%##$translations-title>>
%%!!translations<<
App Manager does not accept translations via pull/merge requests. Translations are managed through
Hosted Weblate. To translate App Manager, visit \url{https://hosted.weblate.org/engage/app-manager/}.
Please read the \textbf{Info} section before getting started.
%%!!>>


\section{Contributing}\label{sec:contributing} %%##$contributing-title>>
%%!!contributing<<
There are many ways a user can contribute, such as creating helpful issues, attending discussions,
improving documentation and translations, reporting unknown libraries or trackers, reviewing the source code,
and reporting security vulnerabilities.
%%!!>>

\subsection{Build Instructions}\label{subsec:build-instructions} %%##$buiding-title>>
%%!!buiding<<
Build instructions are available in the BUILDING file located in the source root.
%%!!>>

\subsection{Submitting patches}\label{subsec:submitting-patches} %%##$submit-patches-title>>
%%!!submit-patches<<
Repositories located on sites other than GitHub are currently considered mirrors, and pull/merge requests submitted on
those sites will not be accepted.\footnote{GitHub pull requests will be merged manually using the corresponding patches.
As a result, GitHub may wrongfully mark them closed instead of merged.} Instead, patches (as \texttt{.patch} files) can
be submitted via email attachments. \textit{Signing-off is a requirement.} See the CONTRIBUTING file
located at the source root for more information.

\begin{warning}{Notice}
    In the case of submitting patches via email, the whole conversation may be publicly accessible in the future.
    So, please do not include personally identifiable information (PII) other than your name or email address.
\end{warning}
%%!!>>


\section{Donation \& Funding}\label{sec:donation-&-funding} %%##$donation-title>>
%%!!donation<<
% \emph{Donation or purchasing is not a requirement in order to use App Manager.} While App Manager does not support any
% purchases, donations can be sent to the owner of App Manager through Open Source Collective.
%
% Open Source Collective is a fiscal host in the Open Collective platform which helps the open source projects manage
% their finances. At present, it supports payments through bank accounts, PayPal, credit or debit cards and
% cryptocurrencies.
%
% \textit{Link:} \url{https://opencollective.com/muntashir}.
%
% By sending donations, the senders agree that they shall not use the donations as a leverage to prioritise their
% requested features. Feature requests do not require any bounties or donations, and they are prioritised in accordance
% with the preferences of the owner.
%
% \emph{App Manager accepts any offers of funding or grants.} Representatives of the interested organization can contact
% the owner directly using the options given in \Sref{sec:contact}.

As of September 2024, App Manager is not accepting financial support until further notice. But
you may still be able to send gifts (e.g., gift cards, subscriptions, food and drink, flowers, or
even cash). Please reach out to the maintainer using the options given in \Sref{sec:contact} for further
assistance.
%%!!>>

%%!!funding-disclaimer<<
In addition, the maintainers and contributors of this project DO NOT consent to the creation, sale,
or promotion of tokens, cryptocurrencies, NFTs, or any other financial instruments that claim to
represent this project, its code, or its community. Any such attempts are unauthorized and not
affiliated with this project in any way.
%%!!>>

\section{Contact}\label{sec:contact} %%##$contact-title>>
%%!!contact<<
App Manager Community\\
Email: \href{mailto:am4android@riseup.net}{am4android [at] riseup [dot] net}\\
GitHub: \url{https://github.com/AMCommunity}\\
Twitter/X: \url{https://x.com/AppManagerNews}\\
Mastodon: \href{https://floss.social/@appmanager}{@appmanager@floss.social}\\
\\

Muntashir Al-Islam\footnote{You can also address me as ``Muntashir Akon''}\\
Email: \href{mailto:muntashirakon@riseup.net}{muntashirakon [at] riseup [dot] net}\\
GitHub: \url{https://github.com/MuntashirAkon}\\
Twitter/X: \url{https://x.com/Muntashir}\\
Mastodon: \href{https://infosec.exchange/@muntashir}{@muntashir@infosec.exchange}
%%!!>>

